package controlador;

import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;

import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;

import modelo.ArticuloDAO;
import modelo.Articulo;
import modelo.Compra;
import modelo.Usuario;
import modelo.UsuarioDAO;
import controlador.FrontCommand;



public class CommandGuardarUsuario extends FrontCommand{
	private UsuarioDAO usuarioDAO;
	
	
	 public CommandGuardarUsuario() {
	        // TODO Auto-generated constructor stub
		 usuarioDAO = new UsuarioDAO();
		  }
	 
	  public void process() throws ServletException, IOException {
		  try { 
			  if (request.getParameter("cedula").equals("") || 
						request.getParameter("nombre").equals("")||
						request.getParameter("apellido").equals("")||  
						request.getParameter("password").equals("") ||
						request.getParameter("confirmarPassword").equals(""))	
					//Deben estar todos los campos llenos para poder incluir el estudiante
					response.sendRedirect("vista/paginamensaje.jsp?mensaje=Debe llenar todos los campos para poder registrar un usuario");
				else
				{
					
					if ( usuarioDAO.existenciaUsuarioPorCedula(request.getParameter("cedula")) == true){
						
						
						response.sendRedirect("vista/paginamensaje.jsp?mensaje=Usuario ya Existente");

												 

					}
					else {
						
						String fecha =request.getParameter("dd");
						fecha += "/";
						fecha += request.getParameter("mm");
						fecha += "/";
						fecha += request.getParameter("aaaa");

						Date laFecha = null;
						SimpleDateFormat formatoDeTexto = new SimpleDateFormat("dd/MM/yyyy");

							try {
								laFecha = formatoDeTexto.parse(fecha);
							} catch (java.text.ParseException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}

						Date hoy = new Date(Calendar.DATE, Calendar.MONTH, Calendar.YEAR);
						
						
						Usuario usuario = new Usuario(request.getParameter("cedula"),
											request.getParameter("nombre"),
											request.getParameter("apellido"),
											laFecha,
											hoy,
											request.getParameter("password"),
											"usuario");
						
						
						usuarioDAO.registrarUsuario(usuario);
						
	
						List<Compra> listaCompra = (List<Compra>) request.getSession().getAttribute("carritoCompra");
						List<Compra> verCarrito = (List<Compra>) request.getSession().getAttribute("verCarrito");

						request.getSession().invalidate();
						
						HttpSession sesion = request.getSession(true);
						sesion.setAttribute("nombre", usuario.getNombre());
						sesion.setAttribute("apellido", usuario.getApellido());
						sesion.setAttribute("fechaNacimiento", usuario.getFechaNacimiento());
						sesion.setAttribute("fechaRegistro", usuario.getFechaRegistro());
						sesion.setAttribute("pasword", usuario.getPasword());
						sesion.setAttribute("cedula", usuario.getCedula());
						sesion.setAttribute("tipo", usuario.getTipo());
						sesion.setAttribute("carritoCompra", listaCompra);
						sesion.setAttribute("verCarrito", verCarrito);
						
						
						 response.sendRedirect("index.jsp");		
						
//							forward("ControladorFrontal?command=CommandSession");	 
						
					}
				
				
				}
		  } catch (NullPointerException e) {
				// TODO Auto-generated catch block
				//e.printStackTrace();
			  response.sendRedirect("index.jsp");
			} 	
		}

}
